-
Notifications
You must be signed in to change notification settings - Fork 253
move all hardware metrics to their own yaml files #2380
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
@trisch-me I am surprised by this new requirement that you mentioned:
My opinion is that it's a shame that this limitation is caused by our tooling only. OTLP itself totally supports having The Can we add a special status for If not, my suggestion for battery charge and limit is to go simply with:
Thank you! |
@trisch-me WRT "Some of the components have only hw.status. And what this actually mean - for example we do define it as hw.enclosure.* - Enclosure metrics but later say just hw.status. Should it be hw.enclosure.status", that's an excellent question! When writing the original semconv for hardware, I tried to group metrics per component type (CPU, memory, etc.). Each component had its own status metric, like Edit: "I WAS asked", and not "I asked" and then thought it's such a great idea 😅 |
I'm in favour of this or revisiting this whole notion of metric names and namespaces etc.; the original issue for it (#50) has been open for a while and the reasoning in favour of it doesn't seem super strong to me relative to the naming gymnastics it requires. |
I have added a question about metric names to the todays semconv meeting |
I wonder if we should follow the naming conventions already used by the car battery industry. Examples: State of charge (SoC), State of health (SoH), charge current limit(CCL)... |
@thompson-tomo So there is no way we could consider I am deeply skeptical of the decision that was made by the TC on this. To allow an hypothetical hierarchical representation of metrics in a JSON payload, we're now trying to invent many workarounds for this artificial limitation, with metrics like The TC probably didn't realize the weird consequences of the decision of preventing a metric from being the prefix of another metric. A It will actually create a lot of instability in our semantic conventions! Is there a way to "appeal" this decision? 😅 |
When I look at |
@bertysentry let’s discuss it today during the meeting once more, I have moved everything to the yaml files and we have no problems right now with tooling (but because we don’t check namespace re-usage for the metrics). We can raise it once more to find the appropriate solution |
@bertysentry we have agreed that we merge it as is to make it pure refactoring and extracting the data from md files to the yaml files and discuss that we should come up with a solution later on how we proceed with collision |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm approving as all my suggestions can be implemented in a future PR, if accepted.
Thank you @trisch-me for all this work! It's really helpful! 😊
During todays’ semconv meeting we have discussed that we will proceed as is with current changes (not changing anything substantial) and there was a request to create a hardware SIG to discuss any other changes to this domain. @bertysentry @thompson-tomo and everyone else interested |
I have also updated github link checker to exclude removed files from check |
we made decision not to change names
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While I still have a lot of questions about this area of semconv, I think bringing it into YAML where we can see how it all hangs together with existing semconv is the right approach.
Let's not let perfect be the enemy of good - let's bring this into YAML so it benefits from automation and consistency that is brought through automation.
AFAICT - This is a faithful re-representation of the HW markdown into YAML, and it has @bertysentry's approval.
@joaopgrassi @trask @AlexanderWert @lmolkova could you please check this PR, thanks |
Fix #1309
Continue to move hardware metrics to their own files.
@bertysentry I would need you guidance as it wasn’t possible to move metrics out as is due to restrictions:
We can’t have both
x.y
andx.y.z
names as declaringx.y.z
makesx.y
automatically a namespace. so you can’t use it as leaf node. In our case we have originallyhw.battery.charge
andhw.battery.charge.limit
. I have changed the latter to thehw.battery.charge_limit
but I’m not sure if this is a correct way and if it breaks anything?Another moment is about
hw.status
metric from https://opentelemetry.io/docs/specs/semconv/system/hardware-metrics/#hwbattery---battery-metrics. Do we need to define it separately as I did in this request? It relies onhw.type
to be the only type (in this casebattery
) andstate
to be the set of specific states for each component and it doesn’t play well together with previous definitions and current restrictions on enums in semconv. We are working on them but before making a final contribution I just want to clarify these points as every other component has the similar set of questions i.e.hw.cpu.speed
andhw.cpu.speed.limit
andhw.status
with another set of values.Some of the components have only
hw.status
. And what this actually mean - for example we do define it ashw.enclosure.* - Enclosure metrics
but later say justhw.status
. Should it behw.enclosure.status
?cc @jsuereth for the hints on metric solution in this case